/************************BUG和建议管理模块************************/
function suggestMgrFn (node, event) {
   	if (node.isLeaf()) {		//判断点击的是树的叶子节点
    	event.stopEvent();
    	
    	//获取点击的菜单项的id
       	var node_id = node.id;
       	//获取被点击的菜单项的text
       	var node_text = node.text;
   
       	if (node_id == 'suggest_info') {			//管理BUG信息
       		
       		//从TabPanel获取此id的对象，看看tab是否已经打开
			var tab = Ext.getCmp("center_part").getComponent(node_id);		         	
			
			if (!tab) {				//如果没有打开				
				
				//显示等待保存的提示信息
        		Ext.MessageBox.show({
        				title: '请等待',
                        msg: '正在加载，请稍等...',
                        progress: true,								        
				        width: 260,
				        wait:true,
				        icon: 'mb_download_icon',
				        animEl: 'saving',
				        waitConfig: {
				        	interval: 200,  //interval进度的频率
				        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
							fn: function(){	//时间到后执行
                             	Ext.MessageBox.hide();	//让进度条消失
                            }
				        }
                });
				
				/***定义带插件RowExpander的表格上的工具条的按钮的处理函数***/	
				
				//定义RowExpander显示格式的按钮的处理函数
				var styleButtonFn = function(btn){
					if (styleButton.getText() == '详细模式') {
						//展开分组表格的分组
						suggestGrid.getView().expandAllGroups();
						for (var i = 0; i < suggestGrid.getStore().getCount(); i++) {		
			                styleButton.setText('简洁模式');
			                styleButton.setIconClass("pithy_icon");
			                expander.expandRow(i);
				        }
					} else if (styleButton.getText() == '简洁模式') {
						//收缩分组表格的分组
						suggestGrid.getView().collapseAllGroups();
						for (var i = 0; i < suggestGrid.getStore().getCount(); i++) {		
			                styleButton.setText('详细模式');
			                styleButton.setIconClass("minute_icon");
		                	expander.collapseRow(i);
				        }							
					}
				}
				
				//定义删除按钮的处理函数
				var deleteButtonFn = function(){
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = suggestGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择一行你要删除的记录！");
						
					} else {									//选择的行删除
						//先提醒用户是否要删除
						Ext.Msg.confirm("提醒信息", "你确定要删除你选择的记录吗？", function(btn) {
							//如果用户确定删除
							if (btn == 'yes') {
								//获取选择的id
								var del_id = selectedCol.get("id");									
								//发送到后台处理
								Ext.Ajax.request({
									url: 'mgr_suggest.do?cmd=delete',
									success: function(response) {
										var obj = Ext.decode(response.responseText);
										if (typeof(obj) != 'undefined') {
											if (obj.result == 'success') {
												Ext.Msg.alert("操作结果", "恭喜，删除记录成功！");
												//刷新表格数据，看看删除效果
												suggestGrid.getStore().reload();
											} else {
												Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
											}
										} else {
											Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
										}
										
									},
									failure: function() {
										Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
									},
									params: {id: del_id}		
								});
							}
						});
					}						
				}
				
				
				/**定义带插件RowExpander的表格上的工具条的按钮的处理函数结束**/
				
				
				
				/******定义显示bug和建议的带ext插件RowExpander的表格*********/	
				
					//定义表格Record样式
					var suggestRecord = Ext.data.Record.create([
				        {name: 'id', type: 'int', mapping: 'id'},
				        {name: 'title', type: 'string', mapping: 'title'},
				        {name: 'sort', type: 'string', mapping: 'sort'},
				        {name: 'author', type: 'string', mapping: 'author'},
				        {name: 'role', type: 'string', mapping: 'role'},
				        {name: 'pubdate', type: 'date', mapping: 'pubdate', dateFormat: 'Y-m-dTH:i:s'},
				        {name: 'content', type: 'string', mapping: 'content'}
				    ]);
					
				    //定义加号里面的内容显示格式
				    var expander = new Ext.grid.RowExpander({
				        tpl : new Ext.Template(
				            '<p>&nbsp;</p>',
				            '<p><b>内容：</b></p>',
				            '<p>&nbsp;</p>',
				            '<p>{content}</p><br /><br />'
				        )
				    });
				    
				    //定义表格列样式
				    var suggestColums = new Ext.grid.ColumnModel([
				    	//加上上面定义的expander
				        expander,
				    {
				        id: 'id',
				        header: '编号',
				        dataIndex: 'id',
				        type: 'int'
				    },{
				        id: 'title',
				        header: '标题',
				        dataIndex: 'title',
				        type: 'string'
				    },{
				        id: 'sort',
				        header: '分类',
				        dataIndex: 'sort',
				        type: 'string'
				    },{
				        id: 'author',
				        header: '作者',
				        dataIndex: 'author',
				        type: 'string'
				    },{
				        id: 'role',
				        header: '角色',
				        dataIndex: 'role',
				        type: 'string'
				    },{
				        id: 'pubdate',
				        header: '发表时间',
				        dataIndex: 'pubdate',
				        type: 'date',
				        width: 130,
				        renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒')
				    }]);
				    suggestColums.defaultSortable = false;
				    
				    //定义Stroe(使用的是GroupingStore产生分组表格，按是GUG或建议分组)
				    var suggestStore = new Ext.data.GroupingStore({
				        proxy: new Ext.data.HttpProxy({url:'mgr_suggest.do?cmd=show'}),
				        reader: new Ext.data.JsonReader({
					        totalProperty: 'totalProperty',
					        root: 'root'
					    }, suggestRecord),
					    //分组的列
						groupField: 'sort',
						//分组必须设置的，排序的列
						sortInfo: {field: 'id', direction: 'desc'}
				    });
				    suggestStore.load({params:{start: 0, limit: 10}});				    
				    
				    //定义表格顶端工具栏	
				    var styleButton = new Ext.Button({
				        text: '详细模式',
				        tooltip: '切换显示模式',
				        iconCls:'minute_icon',
				        handler: styleButtonFn
				    });
				    
				    var deleteButton = new Ext.Button({
				        text: '删除',
				        tooltip: '删除选中的建议',
				        iconCls:'del_icon',
				        handler: deleteButtonFn
				    });
				    var topToolbar = new Ext.Toolbar({
				        items: [styleButton, '-', deleteButton]
				    });
				    
				    //定义表格
				    var suggestGrid = new Ext.grid.GridPanel({
				    	loadMask: true,
				        //使得表格强制fit父容器
				        viewConfig: {
				            forceFit: true
				        },
				        store: suggestStore,
				        cm: suggestColums,
				        sm: new Ext.grid.RowSelectionModel(),
				        //设置分组View
						view: new Ext.grid.GroupingView({
							forceFit:true,
					        //显示这个分组有多少项
					        groupTextTpl: '{text} ({[values.rs.length]} {["条记录"]})'
						}),
				        //添加顶端的工具栏
				        tbar: topToolbar,
				        //添加底部分页条（bbar-->bottom bar）
				        bbar: new Ext.PagingToolbar({
							pageSize: 10,
							store: suggestStore,
							displayInfo: true,
							displayMsg: '显示第 {0} --> {1} 条记录，共 {2} 条记录',
							emptyMsg: "没有记录"
						}),
						//扩展插件
				        plugins: expander,
				        collapsible: true,
				        animCollapse: false
				    });
					
				/*****定义显示bug和建议的带ext插件RowExpander的表格结束*******/
				    
				    
				/*****************添加此表格到TabPanel*****************/
				tab = Ext.getCmp("center_part").add({
					//使用点击菜单的id，这样方便事件处理
					id: node_id,
					//标题为被点击的菜单项的text
					title: node_text,
					closable:true,
					iconCls: 'nor_icon',
					autoScroll:true,
					layout: 'fit',
					items: [suggestGrid]
				});		  
				/***************添加此表格到TabPanel结束***************/
						
			}
			
			//设置此新增Tab为活动的Tab
			Ext.getCmp("center_part").setActiveTab(tab);
       	} 
	}
}
    /**********************BUG和建议管理模块结束***********************/